using System;
using System.Collections.Generic;
using System.Text;

using System.Data;
using System.Data.SqlClient;
using System.Configuration;

using HHo_Model;

namespace HHo_Negocio
{
    public class GestorOrigen
    {
        public List<E_Origen> Man_ConsultarOrigen(E_Origen eOrigen)
        {
            SqlDataReader ordr;
            SqlParameter p1, p2;
            E_Origen oOrigen;
            List<E_Origen> lst;

            p1 = new SqlParameter("@ORI_COD", SqlDbType.Char);
            p1.Size = 10;
            if(eOrigen.Codigo.Trim().Length > 0)
                p1.Value= eOrigen.Codigo.Trim();

            p2 = new SqlParameter("@ORI_DESC", SqlDbType.VarChar);
            p2.Size = 150;
            if(eOrigen.Descripcion.Trim().Length >0)
                p2.Value = eOrigen.Descripcion.Trim();

            ordr = SQLHelper.ExecuteReader(SQLHelper.ObtieneCadenaConexion(), CommandType.StoredProcedure, "[HHSS_MAN_ORIGEN]", p1, p2);
            lst = new List<E_Origen>();
            if (ordr != null)
            {
                while (ordr.Read())
                {
                    oOrigen = new E_Origen();
                    if (ordr.GetValue(0) != DBNull.Value)
                        oOrigen.Codigo = ordr.GetString(0);

                    if (ordr.GetValue(1) != DBNull.Value)
                        oOrigen.Descripcion = ordr.GetString(1);

                    if (ordr.GetValue(2) != DBNull.Value)
                        oOrigen.EsObligatorioComponente = ordr.GetValue(2).ToString();

                    if (ordr.GetValue(3) != DBNull.Value)
                        oOrigen.EsObligatorioDiferido = ordr.GetValue(3).ToString();

                    if (ordr.GetValue(4) != DBNull.Value)
                        oOrigen.Estado = ordr.GetValue(4).ToString();

                    if (ordr.GetValue(5) != DBNull.Value)
                        oOrigen.Id = ordr.GetInt32(5);

                    if (ordr.GetValue(6) != DBNull.Value)
                        oOrigen.OrdenVisual = ordr.GetInt32(6);

                    lst.Add(oOrigen);
                    oOrigen = null;
                }
            }
            return lst;
        }

        public int Man_RegistraOrigen(E_Origen eOrigen)
        {
            SqlParameter p1, p2, p3, p4, p5, p6;                        

            p1 = new SqlParameter("@ORI_COD", SqlDbType.Char);
            p1.Size = 10;
            if (eOrigen.Codigo.Trim().Length > 0)
                p1.Value = eOrigen.Codigo;

            p2 = new SqlParameter("@ORI_DESC", SqlDbType.VarChar);
            p2.Size = 150;
            if (eOrigen.Descripcion.Trim().Length > 0)
                p2.Value = eOrigen.Descripcion;

            p3 = new SqlParameter("@ORI_ESOBLIGACOMP", SqlDbType.Char);
            p3.Size = 1;
            if (eOrigen.EsObligatorioComponente.Trim().Length > 0)
                p3.Value = eOrigen.EsObligatorioComponente;

            p4 = new SqlParameter("@ORI_ESOBLIGADIF", SqlDbType.Char);
            p4.Size = 1;
            if (eOrigen.EsObligatorioDiferido.Trim().Length > 0)
                p4.Value = eOrigen.EsObligatorioDiferido.Trim();

            p5 = new SqlParameter("@ORI_EST", SqlDbType.Char);
            p5.Size = 1;
            if (eOrigen.Estado.Trim().Length > 0)
                p5.Value = eOrigen.Estado.Trim();

            p6 = new SqlParameter("@ORI_ORDENVISUAL", SqlDbType.Int);            
            if (eOrigen.OrdenVisual > 0)
                p6.Value = eOrigen.OrdenVisual;

            return SQLHelper.ExecuteNonQuery(SQLHelper.ObtieneCadenaConexion(), CommandType.StoredProcedure, "[HHSI_MAN_ORIGEN]", p1, p2, p3, p4, p5, p6);
            
        }

        public int Man_ModificaOrigen(E_Origen eOrigen)
        {
            SqlParameter p0, p1, p2, p3, p4, p5, p6;

            p0 = new SqlParameter("@ORI_ID", SqlDbType.Int);
            if (eOrigen.Id > 0)
                p0.Value = eOrigen.Id;
            
            p1 = new SqlParameter("@ORI_COD", SqlDbType.Char);
            p1.Size = 10;
            if (eOrigen.Codigo.Trim().Length > 0)
                p1.Value = eOrigen.Codigo;

            p2 = new SqlParameter("@ORI_DESC", SqlDbType.VarChar);
            p2.Size = 150;
            if (eOrigen.Descripcion.Trim().Length > 0)
                p2.Value = eOrigen.Descripcion;

            p3 = new SqlParameter("@ORI_ESOBLIGACOMP", SqlDbType.Char);
            p3.Size = 1;
            if (eOrigen.EsObligatorioComponente.Trim().Length > 0)
                p3.Value = eOrigen.EsObligatorioComponente;

            p4 = new SqlParameter("@ORI_ESOBLIGADIF", SqlDbType.Char);
            p4.Size = 1;
            if (eOrigen.EsObligatorioDiferido.Trim().Length > 0)
                p4.Value = eOrigen.EsObligatorioDiferido.Trim();

            p5 = new SqlParameter("@ORI_EST", SqlDbType.Char);
            p5.Size = 1;
            if (eOrigen.Estado.Trim().Length > 0)
                p5.Value = eOrigen.Estado.Trim();

            p6 = new SqlParameter("@ORI_ORDENVISUAL", SqlDbType.Int);
            if (eOrigen.OrdenVisual > 0)
                p6.Value = eOrigen.OrdenVisual;

            return SQLHelper.ExecuteNonQuery(SQLHelper.ObtieneCadenaConexion(), CommandType.StoredProcedure, "[HHSU_MAN_ORIGEN]", p0,p1, p2, p3, p4, p5, p6);

        }


        public List<E_Origen> ListarOrigen()
        {
            SqlDataReader oRdr;
            List<E_Origen> lstOrigen;
            E_Origen oOrigen;

            oRdr = SQLHelper.ExecuteReader(SQLHelper.ObtieneCadenaConexion(), CommandType.StoredProcedure, "HHSS_LISTARORIGEN");

            lstOrigen = new List<E_Origen>();     

            if (oRdr != null)
            {           
                while (oRdr.Read())
                {
                    oOrigen = new E_Origen();
                    if(oRdr.GetValue(0) != DBNull.Value)
                        oOrigen.Id = oRdr.GetInt32(0);

                    if(oRdr.GetValue(1) != DBNull.Value)
                        oOrigen.Codigo = oRdr.GetString(1);

                    if(oRdr.GetValue(2) != DBNull.Value)
                        oOrigen.Descripcion = oRdr.GetString(2);

                    if(oRdr.GetValue(3) != DBNull.Value)
                        oOrigen.EsObligatorioComponente = oRdr.GetString(3);

                    if(oRdr.GetValue(4) != DBNull.Value)
                        oOrigen.EsObligatorioDiferido = oRdr.GetString(4);

                    if(oRdr.GetValue(5) != DBNull.Value)
                        oOrigen.Estado = oRdr.GetString(5);

                    if (oRdr.GetValue(6) != DBNull.Value)
                        oOrigen.OrdenVisual = oRdr.GetInt32(6);

                    lstOrigen.Add(oOrigen);
                    oOrigen = null;
                }
            }
            return lstOrigen;
        }

        public List<E_Origen> ListarOrigen(int IdOrigen)
        {
            SqlDataReader oRdr;
            List<E_Origen> lstOrigen;
            E_Origen oOrigen;

            SqlParameter oPrm1 = new SqlParameter("@IDORIGEN", SqlDbType.Int);
            oPrm1.Direction = ParameterDirection.Input;
            oPrm1.Value = IdOrigen;

            oRdr = SQLHelper.ExecuteReader(SQLHelper.ObtieneCadenaConexion(), CommandType.StoredProcedure, "HHSS_CONSULTARORIGEN", oPrm1);

            lstOrigen = new List<E_Origen>();

            if (oRdr != null)
            {
                while (oRdr.Read())
                {
                    oOrigen = new E_Origen();
                    if (oRdr.GetValue(0) != DBNull.Value)
                        oOrigen.Id = oRdr.GetInt32(0);

                    if (oRdr.GetValue(1) != DBNull.Value)
                        oOrigen.Codigo = oRdr.GetString(1);

                    if (oRdr.GetValue(2) != DBNull.Value)
                        oOrigen.Descripcion = oRdr.GetString(2);

                    if (oRdr.GetValue(3) != DBNull.Value)
                        oOrigen.EsObligatorioComponente = oRdr.GetString(3);

                    if (oRdr.GetValue(4) != DBNull.Value)
                        oOrigen.EsObligatorioDiferido = oRdr.GetString(4);

                    if (oRdr.GetValue(5) != DBNull.Value)
                        oOrigen.Estado = oRdr.GetString(5);

                    if (oRdr.GetValue(6) != DBNull.Value)
                        oOrigen.OrdenVisual = oRdr.GetInt32(6);

                    lstOrigen.Add(oOrigen);
                    oOrigen = null;
                }
            }
            return lstOrigen;
        }
    }
}
